package com.ophiux.cs.domain.user.repositories;

import com.ophiux.cs.domain.user.model.aggregate.UserPatientInfo;
import com.ophiux.cs.domain.user.model.entity.Patients;
import com.ophiux.cs.domain.user.model.valueobj.PatientsValueObj;
import com.ophiux.utils.exception.OphiuxRepositoryException;

public interface IPatientRepository {
	/**
	 * 根据patientId  查询就诊人
	 * @param patientId
	 * @return
	 */
	Patients getPatientsByPatientId(String patientId) throws OphiuxRepositoryException;
	/**
	 * 根据条件  查询就诊人列表
	 * @param obj
	 * @return
	 * @throws OphiuxRepositoryException 
	 */
	UserPatientInfo getPatientsInfoList(PatientsValueObj obj) throws OphiuxRepositoryException;
	
	/**
	 * 保存就诊人信息
	 * @param patients
	 * @throws OphiuxRepositoryException 
	 */
	void save(Patients patients) throws OphiuxRepositoryException;
	
	/**
	 * 删除就诊人信息，假删除
	 * @param patients
	 * @throws OphiuxRepositoryException 
	 */
	void deletePatients(Patients patients) throws OphiuxRepositoryException;
	
	
	/**
	 * 保存就诊人信息系
	 * @param userPatientInfo  聚合类
	 * @throws OphiuxRepositoryException
	 */
	void save(UserPatientInfo userPatientInfo) throws OphiuxRepositoryException;
	
}
